Imports Spring.Context
Imports Spring.Context.Support

<Serializable()> _
Public Class BaseDominio
    Implements IRepositorio

    Private _id As Nullable(Of Long)
    Public Overridable Property Id() As Nullable(Of Long)
        Get
            Return _id
        End Get
        Set(ByVal value As Nullable(Of Long))
            _id = value
        End Set
    End Property

    Private _repositorio As IRepositorio
    Protected Overridable Property Repositorio() As IRepositorio
        Get
            Return _repositorio
        End Get
        Set(ByVal value As IRepositorio)
            _repositorio = value
        End Set
    End Property

    Public Sub New()
        Console.WriteLine("Injecting")
        Dim _contextoDoSpring As IApplicationContext = ContextRegistry.GetContext()
        Dim _repositorio As IRepositorio

        _repositorio = DirectCast(_contextoDoSpring("Babok.Repositorio"), IRepositorio)
        Me.Repositorio = _repositorio

    End Sub

#Region "Classes Injetadas"


    'FIM
    'Protected Overridable Property UsuarioDao() As IUsuarioDao Implements IRepositorio.UsuarioDao
    '    Get
    '        Return Me.Repositorio.UsuarioDao
    '    End Get
    '    Set(ByVal value As IUsuarioDao)

    '    End Set
    'End Property


    Protected Overridable Property ItemBackLogDao() As IItemBackLogDao Implements IRepositorio.ItemBackLogDao
        Get
            Return Me.Repositorio.ItemBackLogDao
        End Get
        Set(ByVal value As IItemBackLogDao)

        End Set
    End Property


    Protected Overridable Property RequisitoDao() As IRequisitoDao Implements IRepositorio.RequisitoDao
        Get
            Return Me.Repositorio.RequisitoDao
        End Get
        Set(ByVal value As IRequisitoDao)

        End Set
    End Property


    Protected Overridable Property ImplementacaoDao() As IImplementacaoDao Implements IRepositorio.ImplementacaoDao
        Get
            Return Me.Repositorio.ImplementacaoDao
        End Get
        Set(ByVal value As IImplementacaoDao)

        End Set
    End Property


    Protected Overridable Property ItemUIDao() As IItemUIDao Implements IRepositorio.ItemUIDao
        Get
            Return Me.Repositorio.ItemUIDao
        End Get
        Set(ByVal value As IItemUIDao)

        End Set
    End Property


    Protected Overridable Property UIDao() As IUIDao Implements IRepositorio.UIDao
        Get
            Return Me.Repositorio.UIDao
        End Get
        Set(ByVal value As IUIDao)

        End Set
    End Property


    Protected Overridable Property ElicitacaoDao() As IElicitacaoDao Implements IRepositorio.ElicitacaoDao
        Get
            Return Me.Repositorio.ElicitacaoDao
        End Get
        Set(ByVal value As IElicitacaoDao)

        End Set
    End Property


    Protected Overridable Property VerificacaoDao() As IVerificacaoDao Implements IRepositorio.VerificacaoDao
        Get
            Return Me.Repositorio.VerificacaoDao
        End Get
        Set(ByVal value As IVerificacaoDao)

        End Set
    End Property



    Protected Overridable Property DuvidaDao() As IDuvidaDao Implements IRepositorio.DuvidaDao
        Get
            Return Me.Repositorio.DuvidaDao
        End Get
        Set(ByVal value As IDuvidaDao)

        End Set
    End Property




    Protected Overridable Property TaskDao() As ITaskDao Implements IRepositorio.TaskDao
        Get
            Return Me.Repositorio.TaskDao
        End Get
        Set(ByVal value As ITaskDao)

        End Set
    End Property


    Protected Overridable Property BacklogDao() As IBacklogDao Implements IRepositorio.BacklogDao
        Get
            Return Me.Repositorio.BacklogDao
        End Get
        Set(ByVal value As IBacklogDao)

        End Set
    End Property


    Protected Overridable Property CenarioTesteDao() As ICenarioTesteDao Implements IRepositorio.CenarioTesteDao
        Get
            Return Me.Repositorio.CenarioTesteDao
        End Get
        Set(ByVal value As ICenarioTesteDao)

        End Set
    End Property


    Protected Overridable Property ItemPriorizadoDao() As IItemPriorizadoDao Implements IRepositorio.ItemPriorizadoDao
        Get
            Return Me.Repositorio.ItemPriorizadoDao
        End Get
        Set(ByVal value As IItemPriorizadoDao)

        End Set
    End Property


    Protected Overridable Property ImpedimentoDao() As IImpedimentoDao Implements IRepositorio.ImpedimentoDao
        Get
            Return Me.Repositorio.ImpedimentoDao
        End Get
        Set(ByVal value As IImpedimentoDao)

        End Set
    End Property


#End Region

End Class
